//
//  PictureView.swift
//  Weibo
//
//  Created by 唐润欣 on 16/6/21.
//  Copyright © 2016年 唐润欣. All rights reserved.
//

import UIKit

private let numberOfRow = 3

class PictureView: UIView {

    /// 微博数据的视图模型
    var viewModel: StatusViewModel? {
        
        didSet {
            
            //先把所有图片视图，全部隐藏
            for imageView in subviews {
                
                imageView.hidden = true
            }
            
            var index = 0
            
            //遍历pic_urls数组。例如：pic_url有五个图片url，代表有五张图片，则将前五个imgaeView显示出来
            if let pic_urls = pic_urls {
                
                for pictureModel in pic_urls {
                    
                    //给image设置完程图片
                    let imageView = subviews[index++] as! UIImageView
                    imageView.setImage(pictureModel.thumbnail_pic, placeholder: "avatar_default_big")
                    
                    //处理一共有四张图片的情况，如果一共有四张图片，则直接跳过第三张图片。index ＝＝ 2时，index++会直接跳过第三张图片
                    if pic_urls.count == 4 && index == 2 {
                        
                        index++
                    }
                    
                    //如果有图片，则将imageView显示
                    imageView.hidden = false
                }
            }
        }
    }
    
    var pic_urls: [PictureModel]?
    
    init() {
        
        super.init(frame: CGRectZero)
        setupUI()
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

extension PictureView {
    
    //新建九个imageView
    func setupUI() {
        
        backgroundColor = UIColor.whiteColor()
        
        //图片视图的大小之前已经计算，如果图片视图小于三行高度，则以下添加的子视图会超出图片视图，将以下属性设为true，则超出的部分不显示。
        clipsToBounds = true
        
        //rect横向或纵向步进
        let step = cellLayout.seprator + cellLayout.singlePictureWidth
        
        //第一图片的rect
        let rect = CGRect(origin: CGPointZero, size: CGSizeMake(cellLayout.singlePictureWidth, cellLayout.singlePictureWidth))
        
        //向图片视图先添加9个imageView
        for i in 0..<9 {
            
            //计算行数
            let row = i / numberOfRow
            
            //计算列数
            let colum = i % numberOfRow
            
            //以rect为基础，水平移动dx，垂直移动dy：CGRectOffset(rect: CGRect, _ dx: CGFloat, _ dy: CGFloat) -> CGRect
            //比如说 CGRectMake(0, 0, 100, 100), 执行完 CGRectOffset(rect, 10, 10)， 变成 CGRectMake(10, 10, 100, 100)
            let rect = CGRectOffset(rect, step * CGFloat(colum), step * CGFloat(row))
            let imageView = UIImageView(frame: rect)
            
            imageView.clipsToBounds = true
            imageView.backgroundColor = UIColor.whiteColor()
            addSubview(imageView)
        }
    }
}
